﻿using System.Collections.ObjectModel;

namespace KxApp.Chart
{
    public interface IDeviceService
    {
        void IniData();
        ObservableCollection<KxDevice> Devices { get; set; }

        KxDevice Kr500 { get; set; }
        Variable Kr500v1 { get; set; }
        Variable Kr500v2 { get; set; }
        Variable Kr500v3 { get; set; }
        Variable Kr500v4 { get; set; }
        Variable Kr500v5 { get; set; }
        Variable Kr500v6 { get; set; }
        Variable Kr500v7 { get; set; }

        Variable Kr500Pgno { get; set; }
        Variable Kr500PdctId { get; set; }

        KxDevice Kr16 { get; set; }
        Variable Kr16v1 { get; set; }
        Variable Kr16v2 { get; set; }
        Variable Kr16v3 { get; set; }
        Variable Kr16v4 { get; set; }
        Variable Kr16v5 { get; set; }
        Variable Kr16v6 { get; set; }
        Variable Kr16v7 { get; set; }
        Variable Kr16Pgno { get; set; }
        Variable Kr16PdctId { get; set; }


        #region 相机
        KxDevice Camera { get; set; }
        Variable CameraX { get; set; }
        Variable CameraY { get; set; }
        #endregion

        #region 底座1伺服
        KxDevice DZ1Servo { get; set; }
        Variable DZ1ActPos { get; set; }
        Variable DZ1SetPos { get; set; }
        Variable DZ1ActVel { get; set; }

        #endregion

        #region 底座2伺服
        KxDevice DZ2Servo { get; set; }
        Variable DZ2ActPos { get; set; }
        Variable DZ2SetPos { get; set; }
        Variable DZ2ActVel { get; set; }

        #endregion

        #region 底座3伺服
        KxDevice DZ3Servo { get; set; }
        Variable DZ3ActPos { get; set; }
        Variable DZ3SetPos { get; set; }
        Variable DZ3ActVel { get; set; }

        #endregion

        #region 框架1伺服
        KxDevice KJ1Servo { get; set; }
        Variable KJ1ActPos { get; set; }
        Variable KJ1SetPos { get; set; }
        Variable KJ1ActVel { get; set; }

        #endregion

        #region 框架2伺服
        KxDevice KJ2Servo { get; set; }
        Variable KJ2ActPos { get; set; }
        Variable KJ2SetPos { get; set; }
        Variable KJ2ActVel { get; set; }

        #endregion

        #region 框架3伺服
        KxDevice KJ3Servo { get; set; }
        Variable KJ3ActPos { get; set; }
        Variable KJ3SetPos { get; set; }
        Variable KJ3ActVel { get; set; }

        #endregion

        #region 轴伺服
        KxDevice AxisServo { get; set; }
        Variable AxisActPos { get; set; }
        Variable AxisSetPos { get; set; }
        Variable AxisActVel { get; set; }

        #endregion

        #region 打磨伺服
        KxDevice PolishServo { get; set; }
        Variable PolishActPos { get; set; }
        Variable PolishSetPos { get; set; }
        Variable PolishActVel { get; set; }

        #endregion

        #region 产品
        ProductData ProductData { get; set; }
        #endregion
    }
}
